﻿#include "widget.h"
#include "ui_widget.h"
#include <QPainter>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    posx=0;

    // 点击移动按钮移动图片
    connect(ui->pushButton,&QPushButton::clicked,[=](){
         posx+=20;
        // 手动调用绘图事件，用update更新
        update();
    });
}

Widget::~Widget()
{
    delete ui;
}

void Widget::paintEvent(QPaintEvent *event)
{
    /*// 添加#include <QPainter> 画家类
    QPainter painter(this);  //this指定的是绘图设备

    // 设置画笔颜色
    QPen pen(QColor(255,0,0));
    // 设置画笔宽度
    pen.setWidth(1);
    // 设置画笔风格  点成线
    pen.setStyle(Qt::DotLine);

    // 设置画刷
    QBrush brush(Qt::green);
    // 设置画刷的风格
    brush.setStyle(Qt::CrossPattern);

    // 画家使用画刷
    painter.setBrush(brush);

    // 设置当前画笔
    painter.setPen(pen);

    // 画线 参数:起点，终点
    painter.drawLine(QPoint(0,0),QPoint(100,100));

    // 画椭圆 参数:中心点，x半径，y半径
    painter.drawEllipse(QPoint(100.,100),100,50);

    // 画矩形
    painter.drawRect(QRect(200,200,250,250));

    // 花文字
    painter.drawText(QRect(10,200,150,50),"你哈奥水电费");*/


    /*/// 高级设置
    QPainter painter(this);  //this指定的是绘图设备

    // painter.drawEllipse(QPoint(300,300),100,100);
    // // 设置抗锯齿能力  效率较低
    // painter.setRenderHint(QPainter::Antialiasing);

    // painter.drawEllipse(QPoint(500,300),100,100);


    // 绘制矩形
    painter.drawRect(QRect(100,100,100,100));
    // 画家原本基于屏幕左上角0,0点绘制
    // 通过translate移动让画家基于150,0点绘制
    painter.translate(150,0);

    // 保存画家状态
    painter.save();

    painter.drawRect(QRect(100,100,100,100));

    painter.translate(150,0);

    // 还原画家保存状态
    painter.restore();

    painter.drawRect(QRect(100,100,100,100));*/


    /// 利用画家画资源图片
    QPainter painter(this);

    if(posx>this->width())
        posx=0;

    painter.drawPixmap(posx,0,QPixmap(":/test"));


}
